package com.koron.ticket.operation.bean.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.bean.base.BaseBean;
import com.koron.ticket.operation.bean.OperationExecuteBean;
import com.koron.ticket.operation.bean.OperationStepBean;
import com.koron.ticket.operation.bean.OperationUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@ApiModel(value="操作票主表")
@Data
public class OperationTicketDetailsDto extends BaseBean implements Serializable {

    @ApiModelProperty(value = "唯一id")
    private String id;

    /**
    * 操作票票号
    */
    @javax.persistence.Transient
    @ApiModelProperty(value="工作票号  备注：如果关联多张工作票请以逗号分割")
    private String workCodeSplit;

    /**
    * 操作票票号
    */
    @ApiModelProperty(value="操作票票号")
    private String code;

    /**
    * 操作票类型
    */
    @ApiModelProperty(value="操作票类型 数据字典:ticket_operation_group")
    private String group;

    /**
    * 操作票子类型
    */
    @ApiModelProperty(value="操作票子类型 数据字典：ticket_operation_type")
    private String type;

    /**
     * 标题
     */
    @ApiModelProperty(value="标题")
    private String title;

    /**
    * 工作内容
    */
    @ApiModelProperty(value="工作内容")
    private String context;

    /**
     * 法令人
     */
    @ApiModelProperty(value="发令人")
    private String irritating;

    /**
     * 法令人名称
     */
    @ApiModelProperty(value="发令人名称")
    private String irritatingName;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @ApiModelProperty(value="发令时间")
    private Date command;

    /**
     * 受令人
     */
    @ApiModelProperty(value = "受令人")
    private List<OperationUser> operationuserlist;

    /**
    * 状态
    */
    @ApiModelProperty(value="状态 数据字典：ticket_operation_status")
    private Integer status;

    /**
     * 自审人账号
     */
    @ApiModelProperty(value="自审人账号")
    private String checker;

    /**
     * 自审人名字
     */
    @ApiModelProperty(value="自审人名字")
    private String checkerName;


    @javax.persistence.Transient
    @ApiModelProperty(value="操作票执行信息")
    private OperationExecuteBean executemsg;


    @javax.persistence.Transient
    @ApiModelProperty(value="操作步骤明细")
    private List<OperationStepBean> stepdet;


    @javax.persistence.Transient
    @ApiModelProperty(value="工作票Id  安全措施明细")
    private List<OperationWorkDto> workIds;


    private static final long serialVersionUID = 1L;
}